target/linx: execute PTO ISA v0.2 Tile profiles - #39
Conversation
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
Signed-off-by: jialewang-316server <jialewangxox@gmail.com>
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
zhoubot
left a comment
There was a problem hiding this comment.
[HIGH] Blocking correctness issue in target/linx/helper.c:12381-12408, 12091-12160, 12582-12682, and 13033-13047: the TEPL selector whitelist is not paired with an operation-by-dtype/profile gate. TEXP, TLOG, TSQRT, TRSQRT, and TRECIP are admitted for FP16/BF16 because their element widths pass the global guard, but linx_tile_tepl_unary_word implements them only for FP32; the non-FP32 default returns zero, which is then written and published instead of raising LINX_EXCP_ILLEGAL_INST. FP8 basic arithmetic similarly falls through generic integer math. This contradicts the PR claim that unsupported profiles reject before destination mutation. Add explicit per-selector dtype/profile validation before the destination memset/execution and representative AVS coverage for rejected tuples without queue mutation. No CI checks are reported on this head, so the claimed local gates do not cover this missing semantic guard.
|
Addressed the blocking TEPL profile review in commit Changes:
AVS evidence is in LinxISA/linx-isa#159:
Local gates:
No CI checks are currently reported by GitHub on this head. |
The selector table closed destination-profile fallthrough, but TCVT also depends on the queued source dtype. Validate that tuple before pinning or reserving output and use QEMU softfloat for FP16/BF16 encoding boundaries. Constraint: B.IOT rejection must precede source pinning and output reservation Rejected: Disable FP16/BF16 TCVT entirely | current PTO workloads depend on those conversions Confidence: high Scope-risk: narrow Directive: Keep TCVT source legality ahead of queue mutation and extend exact-value AVS with every new dtype tuple Tested: linx64-softmmu build; focused Tile AVS including 0xA0016, 0xA0029, 0xA002A; strict opcode/meta audit; call/ret audit Not-tested: full AVS beyond the known DeepSeek 0x1702 liveness blocker; live migration restore across v14/v15 Signed-off-by: RuoyuZhou <ruoyu.zhou@hisilicon.com>
zhoubot
left a comment
There was a problem hiding this comment.
Re-reviewed after the selector/dtype and TCVT repairs. Unsupported TEPL profiles now fail before queue/output mutation; TCVT validates the queued source dtype and uses QEMU softfloat for FP16/BF16. Verified linx64-softmmu build, focused Tile AVS (including negative IDs 0xA0029/0xA002A and exact TCVT ID 0xA0016), descriptor IDs 0xA000E-0xA0011, strict opcode/meta sync, and call/ret audit. Full AVS still reaches the known unrelated DeepSeek 0x1702 liveness blocker; strict L1 coverage remains an unchanged repository baseline gap.
Summary
TMATMUL_BIAS, interleave/de-interleave, and partial arg selectiondocs/linxisa/pto-tile-support.mdThis is the QEMU implementation subtask for LinxISA/SuperScalarModel#31. It does not close the tracking issue because gfrun, gfsim, and cross-model comparison work remains.
Version scope
The 111-operation count is the complete current target set, not the number of operations newly introduced in PTO ISA v0.2. Earlier commit subjects that mention v0.57 refer to the LinxISA encoding profile; the existing PR history is preserved to avoid a force-push.
Coverage
TMATMUL,TMATMUL_BIAS,TMATMUL_ACC,TGEMV,TGEMV_ACC)The count denotes at least one defined QEMU execution profile, not complete dtype, layout, shape, rounding, exception, or target-profile coverage.
TQUANT, MX profiles, unresolved implicit-destination or variable-operand forms, and Pipe/control operations remain rejected until their contracts are closed.Validation
ninja -C build qemu-system-linx64PASSpython3 avs/qemu/run_tests.py --suite tile --timeout 40PASSgit diff --checkPASSThe full LinxISA
--allrun has an existing unrelated liveness blocker at DeepSeek test0x00001702; this PR does not report the focused Tile PASS as a full-suite PASS.Dependent PR
Exact-value AVS coverage and the support matrix are maintained in LinxISA/linx-isa#159.